.\" *************************************************************************
.\" *  Copyright © 2006 Rémi Denis-Courmont.                                *
.\" *  This program is free software: you can redistribute and/or modify    *
.\" *  it under the terms of the GNU General Public License as published by *
.\" *  the Free Software Foundation, versions 2 or 3 of the license.        *
.\" *                                                                       *
.\" *  This program is distributed in the hope that it will be useful,      *
.\" *  but WITHOUT ANY WARRANTY; without even the implied warranty of       *
.\" *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the        *
.\" *  GNU General Public License for more details.                         *
.\" *                                                                       *
.\" *  You should have received a copy of the GNU General Public License    *
.\" *  along with this program. If not, see <http://www.gnu.org/licenses/>. *
.\" *************************************************************************
.TH "TCPSPRAY" "1" "$Date$" "tcpspray" "User's Manual"
.SH NAME
tcpspray \- TCP/IP bandwidth measurement tool (Discard and Echo client)
.SH SYNOPSIS
.BR "tcpspray" " [" "-46ev" "] [" "-b block_size" "] [" "-d wait_\[char181]s" "] ["
.BR "-f filename" "] [" "-n count" "] <" "hostname" "> [" "port" "]"

.SH DESCRIPTON
.B tcpspray
.RI "uses the " "Discard" " resp. " "Echo" " protocol (RFC\ 863 resp. RFC\ 862)"
.RI "to perform bandwidth measurements of " "TCP" " sessions between the"
.RI "local system, and a " "Discard" " resp. " "Echo" " server."

Unix-based hosts can provide a Discard and/or Echo servers with the Internet
.I super-server
.BR "inetd" ". On Windows NT, the
.I simple network protocols
optional component will do the same.

The name or address of the server node must be specified. tcpspray will
automatically try to use IPv6 when available. If not, or if it fails, it will
fallback to IPv4. However, tcpspray4 resp. tcpspray6 only try to use IPv4
resp. IPv6.

.SH OPTIONS

.TP
.BR "\-4" " or " "\-\-ipv4"
Force usage of TCP over IPv4.

.TP
.BR "\-6" " or " "\-\-ipv6"
Force usage of TCP over IPv6.

.TP
.BR "\-b block_size" " or " "\-\-bsize block_size"
Send block of the specified byte size (default: 1024).

.TP
.BR "\-d wait_\[char181]s" " or " "\-\-delay wait_\[char181]s"
Waits for the given amount of microseconds after any given was sent
before attempting to send the next one. There is no delay by default.

.TP
.BR "\-e" " or " "\-\-echo"
Use the Echo protocol instead of Discard. tcpspray will measure the
time required to send data and receive it back, instead of simply
sending it.

.TP
.BR "\-f filename" " or " "\-\-fill filename"
Read data from the specified file to fill sent blocks with. If the
file is smaller than the size of blocks, or if no file were specified,
the remaining trailing bytes are all set to zero.

.TP
.BR "\-h" " or " "\-\-help"
Display some help and exit.

.TP
.BR "\-n block_count" " or " "\-\-count block_count"
Send the specified amount of data blocks for the measurements
(default: 100).

.TP
.BR "\-V" " or " "\-\-version"
Display program version and license and exit.

.TP
.BR "\-v" " or " "\-\-verbose"
Display more verbose informations. In particular, tcpspray will print a dot
each time a block is sent. If the Echo protocol is used (option -e), dots
will be erased as data is received back.

.SH DIAGNOSTICS

If you get no response while you know the remote host is up, it is
most likely that it has no Discard/Echo service running, or that these
services are blocked by a firewall. Running tcptraceroute6(8) resp.
tcptraceroute(8) toward the IPv6 resp. IPv4 remote host might help detecting
such a situation.

.SH SECURITY
tcpspray does not require any privilege to run.

.SH "SEE ALSO"
tcp(7), inetd(8), tcptraceroute6(8), tcptraceroute(8)

.SH AUTHOR
R\[char233]mi Denis-Courmont <remi at remlab dot net>

http://www.remlab.net/ndisc6/
